import axios, {AxiosRequestConfig} from "axios";


axios.defaults.timeout = 50000 // 请求超时时间（毫秒）
axios.defaults.baseURL =import.meta.env.BASE_URL+'api' // 你的API基本URL
// 添加请求拦截器
axios.interceptors.request.use(function (reqConfig:AxiosRequestConfig) {
    // 在发送请求之前做些什么
    const token = localStorage.getItem('token');
    if(token) {
        reqConfig.headers['Authorization'] = `Bearer ${token}`;
        //clientid
        reqConfig.headers['clientid'] = import.meta.env.VITE_CLIENT_ID
        // 与浏览器插件通信
        // window.sendMessageToBrowserExt('erp/token',token).then((res:any) => {
        //     console.log("=====sendToBackgroundViaRelay success=====", res)
        // }, (err:any) => {
        //     console.log("=====sendToBackgroundViaRelay error=====", err)
        // })
    }
    return reqConfig;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
axios.interceptors.response.use(function (response) {
    if(response.status === 200 ) {
        if(response.data.code === 401){
            console.log("清空缓存登录信息")
            //返回到登录
            localStorage.removeItem('token');
            // const store = useStore();
            // store.set(initialStatesAtom, {currentUser: {
            //         roles: [],
            //         permissions: []
            //     },isAuthenticated:false});
            console.log("返回到登录")
            // if(window.location.href.indexOf("/login") === -1){
            //     window.location.href="/login"
            // }
        }
    }
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});
export default axios;